using System.Collections.Generic;
using DataScripter.Excel.Formatters;
using Microsoft.Office.Interop.Excel;

namespace DataScripter.Excel
{
    public interface ICell
	{
		void AdvanceLine();
		string CellReference { get; }
		string AbsoluteCellReference { get; }
		int Row { get; }
		int Column { get; }
		object Font { get; }
		string NumberFormat { set; }
		XlHAlign HorizontalAlignment { set; }
		void SetAndAdvanceLine(object someValue, params object[] values);
		void SetAndAdvanceLine(ICellFormatter formatter, params object[] values);
		void SetAndAdvanceLine<T>(ICellFormatter formatter, IEnumerable<T> values);
		void SetAndAdvanceLine(ICellFormatter formatter, object someValue, params object[] values);
		void SetAndAdvanceLine(ICellFormatter formatter, object someValue, IEnumerable<object> values);
		ICell GetNextColumn(int columns);
		ICell GetDiff(int rowDiff, int colDiff);
		ICell Clone();
		ICell GetNextLine(int lines);
	}
}